第一章 正则表达式字符匹配攻略

字符组组合含义
/d[0-9]表示是一位数字
/D[^0-9]除数字外的任意字符
\w[0-9a-zA-Z_]表示数字、大小写字母和下划线
\W[^0-9a-zA-Z_]非单词字符
\s[ \t\v\n\r\f]空白符,包括空格、水平制表符、垂直制表符、换行符、回车符、换页符
\S[^ \t\v\n\r\f]非空字符
.[^\n\r\u2028\u2029]通配符,表示几乎任意字符。换行符、回车符、行分隔符和段分隔符除外
量词 {m,n} 通过在量词后面加个问号就能实现惰性匹配
  • {m,} 表示至少出现m次。
  • {m} 等价于{m,m},表示出现m次
  • ? 等价于{0,1}
  • + 等价于{1,}
  • * 等价于{0,}
1
2
3
4
5
// 横向模糊匹配
var regexp = /ab{2,5}c/g;
var string = "abc abbc abbbc abbbbc abbbbbc abbbbbbc";
console.log(string.match(regex));
// => ["abbc", "abbbc", "abbbbc", "abbbbbc"]
1
2
3
4
5
// 纵向模糊匹配
var regexp = /a[123]b/g;
var string = "a0b a1b a2b a3b a4b";
console.log(string.match(regex));
// => ["a1b", "a2b", "a3b"]
1
// 匹配“a”、“-”、“z”这三者中任意一个字符 [-az]或[az-]或[a\-z]
1
// [^abc],表示是一个除"a"、"b"、"c"之外的任意一个字符
1
// 匹配任意字符 [\d\D]、[\w\W]、[\s\S]和[^]
1
// [^abc],表示是一个除"a"、"b"、"c"之外的任意一个字符
1
2
3
4
5
// 贪婪匹配
var regexp = /\d{2,5}/g;
var string = "123 1234 12345 123456";
console.log( string.match(regex));
// => ["123", "1234", "12345", "12345"]
1
2
3
4
5
// 惰性匹配
var regexp = /\d{2,5}?/g;
var string = "123 1234 12345 123456";
console.log(string.match(regex));
// => ["12", "12", "34", "12", "34", "12", "34", "56"]
1
2
3
4
5
// 匹配16进制颜色值
var regex = /#([0-9a-fA-F]{6}|[0-9a-fA-F]{3})/g;
var string = "#ffbbad #Fc01DF #FFF #ffE";
console.log(string.match(regex));
// => ["#ffbbad", "#Fc01DF", "#FFF", "#ffE"]
1
2
3
// 匹配24小时制时间
var regexp = /^([01][0-9]|2[0-4]):[0-5][0-9]$/;
var regexp = /^(0?[0-9]|1[0-9]|[2][0-3]):(0?[0-9]|[1-5][0-9])$/;
1
2
3
4
5
6
7
// 匹配日期
/**分析:
年,四位数字即可,可用[0-9]{4}。
月,共12个月,分两种情况01、02、……、09和10、11、12,可用(0[1-9]|1[0-2])。
日,最大31天,可用(0[1-9]|[12][0-9]|3[01])。
**/
var regexp = /^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$/;

以上信息仅做笔记记录,如有冒犯,请联系我。感谢老姚,附作者掘金地址链接: https://juejin.im/post/59cc61176fb9a00a437b290b